/*
 * Copyright (C) 拾光分享网 
 * All rights reserved, Designed By www.hiai.top.
 * Email：goodsking@163.com.
 */
package top.hiai.user.index;

import com.jfinal.core.NotAction;

import top.hiai.common.model.User;
import top.hiai.config.BaseController;

/**
* @Author www.hiai.top
* @Email  goodsking@163.com
* @Message 更多资源尽在www.hiai.top
* @Introduction 类的介绍：所有用户的控制器,可以显示用户的个人主页，显示了该用户的粉丝，好友，文章等
*/

public class IndexUserController extends BaseController {

	IndexUserService indexUserService = new IndexUserService();
	
	/**
	 * 判断双方是不是粉丝或关注
	 * friendRelation = -1	访问者就是A，也就是A用户看了A用户的空间
	 * friendRelation = 0   A没有关注B
	 * friendRelation = 1 	A关注了B
	 * 
	 */

	public static int friendRelation = 0;
	
	/**
	 * 渲染所有用户的列表的视图
	 */
	public void index(){
		setAttr("userList", indexUserService.userListPage(getParaToInt("p", 1),limtCount));
		render("index.html");
		//renderJson();
	}
	/**
	 * 用户详情页面
	 */
	public void detail(){
		//获取ID
		Integer uid = getParaToInt();
		//判断用户是否登录
		boolean is_true_login = isLogin();
		//如果登录了就获取用户的登录用户ID
		if(is_true_login){
			int accountId = getLoginAccountId();
			getFriendRelation(accountId,uid);
		}
		//获取用户的信息
		User user = indexUserService.getDetailUser(uid);
		//获取这个用户的所有文章
		setAttr("userArticleList", indexUserService.getUserArticleListPage(getParaToInt("p", 1),limtCount,uid));
		
		//获取这个用户的回复内容
		setAttr("userReplyList", indexUserService.getUserReplyList(uid));
		
		//获取这个用户的关注的人
		setAttr("userAttentionList",indexUserService.getUserAttentionList(uid));
		
		//获取这个用户的粉丝列表
		setAttr("userFanList",indexUserService.getUserFanList(uid));
		
		//获取这个用户有多少个粉丝
		setAttr("userFanCount",indexUserService.getUserFanCount(uid));
		
		//把是否关注了传给前段
		setAttr("friendRelation",friendRelation);
		//传标题
		setAttr("seoTitle", user.getNickName()+"的个人主页");
		
		//文章浏览量加1
		indexUserService.initUserView(uid);
		setAttr("user", user);
		render("datail.html");
	}
	
	/**
	 * 判断用户之间是否关注了
	 */
	@NotAction
	public void getFriendRelation(int accountId,int uid){
		int friendRelations = indexUserService.getFriendRelation(accountId,uid);
		friendRelation = friendRelations;
	}
	
}